package com.tencreat.domain.mall;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tencreat.common.annotation.Excel;
import com.tencreat.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;


/**
 * 售后对象 mall_aftersale
 *
 * @author tencreat
 * @date 2021-08-19
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
@TableName("mall_aftersale")
public class MallAftersale extends BaseEntity<MallAftersale>{
    private static final long serialVersionUID = 1L;


    /** $column.columnComment */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "ID")
    private Long id;


    /** 售后编号 */
//    @Excel(name = "售后编号")
    @ApiModelProperty(value= "售后编号")
    @TableField("`aftersale_sn`")
    private String aftersaleSn;

    /** 订单编号 */
    @Excel(name = "订单编号",sort = 1)
    @ApiModelProperty(value= "订单编号")
    @TableField("`order_sn`")
    private String orderSn;

    /** 订单编号 */
    @ApiModelProperty(value= "订单商品ID")
    @TableField("`order_goods_id`")
    private Long orderGoodsId;

    /** 订单ID */
//    @Excel(name = "订单ID")
    @ApiModelProperty(value= "订单ID")
    @TableField("`order_id`")
    private Long orderId;


    /** 用户ID */
    @Excel(name = "用户ID",sort = 2)
    @ApiModelProperty(value= "用户ID")
    @TableField("`user_id`")
    private Long userId;

    /** 用户手机号 */
    @Excel(name = "用户手机号",sort = 3)
    @ApiModelProperty(value= "用户手机号")
    @TableField("`mobile`")
    private String mobile;

    /** 售后类型，0是未收货退款，1是已收货（无需退货）退款，2用户退货退款 */
    @Excel(name = "售后类型")
    @TableField("`type`")
    @ApiModelProperty(value= "售后类型 ")
    private Integer type;


    /** 退款原因 */
    @Excel(name = "退款原因",sort = 7)
    @ApiModelProperty(value= "退款原因")
    @TableField("`reason`")
    private String reason;


    /** 退款金额 */
    @Excel(name = "退款金额",sort = 5)
    @ApiModelProperty(value= "退款金额")
    @TableField("`amount`")
    private BigDecimal amount;

    /** 退货单号 */
//    @Excel(name = "退货单号")
    @ApiModelProperty(value= "退货单号")
    @TableField("`ship_sn`")
    private String shipSn;


    /** 退款凭证图片链接数组 */
//    @Excel(name = "退款凭证图片链接数组")
    @ApiModelProperty(value= "退款凭证图片链接数组")
    @TableField("`pictures`")
    private String pictures;


    /** 退款说明 */
//    @Excel(name = "退款说明")
    @ApiModelProperty(value= "退款说明")
    @TableField("`comment`")
    private String comment;


    /** 售后状态，0是可申请，1是用户已申请，2是管理员审核通过，3是管理员退款成功，4是管理员审核拒绝，5是用户已取消 */
    @Excel(name = "售后状态",sort = 4,readConverterExp = "0=可申请,1=用户已申请,2=管理员审核通过,3=管理员退款成功,4=管理员审核拒绝,5=用户已取消")
    @ApiModelProperty(value= "售后状态，0是可申请，1是用户已申请，2是管理员审核通过，3是管理员退款成功，4是管理员审核拒绝，5是用户已取消")
    @TableField("`status`")
    private Integer status;


    /** 删除标志（0代表存在 2代表删除） */
    @TableLogic
    @TableField("`del_flag`")
    private String delFlag;


    /** 租户ID */
//    @Excel(name = "租户ID")
    @ApiModelProperty(value= "租户ID")
    @TableField("`tenant_id`")
    private Long tenantId;

    @ApiModelProperty("退货地址id")
    private Long addressId;

    @ApiModelProperty("商品上传者")
    private Long goodsUserId;

    @ApiModelProperty("结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;

    @ApiModelProperty(value= "快递公司")
    @TableField("`ship_name`")
    private String shipName;
}
